#pragma once

#include "Sprite.h"

class Artifact;

class Card
{
private:
	SpriteInfo	CardSpriteInfo;		//Information for the sprite that will represent every different card
	Artifact*	CardArtifact;		//The artifact that will be represented on the card
	bool		flipped;			//Determines if the card object is flipped
	bool		showArtifact;

public:
	void Load(char*, Artifact*);
	//////////////////////////////////////////////////////////////////////////
	// Name:		LoadTexture
	// Parameters:	char* spriteName - The sprite information will determine
	//									which texture will be loaded for
	//									the current card
	// Return:		void
	// Description: Loads sprite information for the card to be drawn
	//////////////////////////////////////////////////////////////////////////
	void LoadTexture(char*);

	//////////////////////////////////////////////////////////////////////////
	// Name:		LoadArtifact
	// Parameters:	Artifact* artifact - This is the artifact that the card
	//									 represents
	// Return:		void
	// Description: Loads an artifact object that will determine what type
	//				of card it is
	//////////////////////////////////////////////////////////////////////////
	void LoadArtifact(Artifact*);

	//////////////////////////////////////////////////////////////////////////
	//Gets and sets
	//////////////////////////////////////////////////////////////////////////
	Artifact* GetArtifact();
	SpriteInfo* GetSpriteInfo();
	void Flip(bool);
	void show(bool);
	bool isFlipped();
	bool isCardShown();
};